package com.jic.point.model.vo.request;

import com.jic.point.model.entity.ConfPointCardBatch;
import com.jic.point.model.vo.response.ConfPointCardBatchResponse;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@ApiModel(description = " 积分卡批量开卡申请表实体类")
public class ConfPointCardBatchRequest extends BaseEntityRequest{
    private static final long serialVersionUID = 1L;
    // @NotEmpty(message = "主键")
    @ApiModelProperty(notes = "主键")
    private Long id;

    @ApiModelProperty(notes = "申请时间")
    private Date applyTime;

    @ApiModelProperty(notes = "积分卡类别")
    private Long cardSort;

    // @NotEmpty(message = "积分卡申请编码")
    @ApiModelProperty(notes = "积分卡申请编码")
    private String code;

    // @NotEmpty(message = "名称")
    @ApiModelProperty(notes = "名称")
    private String name;


    @ApiModelProperty("生成的积分卡系列")
    private List<QuantityRequest> quantity;


    // @NotEmpty(message = "积分卡类型（1、权益卡；2、海星卡；3、定制卡；4、贵宾卡；智慧整套卡）")
    @ApiModelProperty(notes = "积分卡类型（1、权益卡；2、海星卡；3、定制卡；4、贵宾卡；5,智慧整套卡）")
    private Long type;

    // @NotEmpty(message = "采购类型(1、中心采购；2、产品线采购；3、渠道采购；4、平台采购；）")
    @ApiModelProperty(notes = "采购类型(1、中心采购；2、产品线采购；3、渠道采购；4、平台采购；）")
    private Long purchaseType;

    @ApiModelProperty(notes = "剩余积分")
    private BigDecimal leftPoint;

    @ApiModelProperty(notes = "剩余数量")
    private BigDecimal leftNum;
    // @NotEmpty(message = "一级需求ID")
    @ApiModelProperty(notes = "一级需求ID")
    private String firstDemandCode;

    // @NotEmpty(message = "二级需求ID")
    @ApiModelProperty(notes = "二级需求ID")
    private String secondDemandCode;

    // @NotEmpty(message = "有效期")
    @ApiModelProperty(notes = "有效期")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date expiryTime;

    // @NotEmpty(message = "批次开卡数量")
    @ApiModelProperty(notes = "批次开卡数量")
    private BigDecimal totalNum;

    // @NotEmpty(message = "冻结数量")
    @ApiModelProperty(notes = "冻结数量")
    private BigDecimal frozenNum;

    // @NotEmpty(message = "总积分")
    @ApiModelProperty(notes = "总积分")
    private BigDecimal totalPoint;

    // @NotEmpty(message = "是否接口校验卡片(1、是；2、否)")
    @ApiModelProperty(notes = "是否接口校验卡片(1、是；2、否)")
    private Integer isInterfaceVarify;

    // @NotEmpty(message = "图片1")
    @ApiModelProperty(notes = "图片1")
    private String img1;

    // @NotEmpty(message = "图片2")
    @ApiModelProperty(notes = "图片2")
    private String img2;

    // @NotEmpty(message = "图片3")
    @ApiModelProperty(notes = "图片3")
    private String img3;

    // @NotEmpty(message = "申请原因")
    @ApiModelProperty(notes = "申请原因")
    private String applyReason;

    @ApiModelProperty("最小过期事件")
    private Date minExpiration;

    // @NotEmpty(message = "审批人ID")
    @ApiModelProperty(notes = "审批人ID")
    private Long auditorId;
    @ApiModelProperty(notes = "审批时间")
    private Date auditTime;
    @ApiModelProperty(notes = "审核状态")
    private Long auditSts;
    @ApiModelProperty(notes = "审核原因")
    private String auditReason;
    // @NotEmpty(message = "是否删除：0、待审核， 1、正常；3、作废 ")
    @ApiModelProperty(notes = "是否删除：0、待审核， 1、正常；3、作废 ")
    private Long sts;
    @ApiModelProperty(notes = "一审人id")
    private Long auditorOneId;

    @ApiModelProperty(notes = "一审原因")
    private String auditOneReason;

    @ApiModelProperty(notes = "一审时间")
    private Date auditOneTime;

    @ApiModelProperty(notes = "过期时间")
    private List<Date> expiration;

    @ApiModelProperty(notes = "一审状态 0未通过 1通过")
    private Long auditOneSts;

    @ApiModelProperty("平台名称")
    private String platformName;


    @ApiModelProperty(notes = "释放  0：未释放    1：释放")
    private Integer pointRelease;

    private List<ConfPointCardBatchRequest> list;

    private List<String> releaseBatch;

    @ApiModelProperty("生成数量")
    private BigDecimal  generateNumber;
}

